package br.com.dwii.tpg2.entidade;

import br.com.dwii.tpg2.util.DBUtil;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Diego
 */
public class Caracteristica {
    
    private Long id;
    private String flagTipoAnimal;
    private String flagSexo;
    private String flagIdade;
    private String flagPorte;
    private String flagPelagem;
    private String flagRaca;
    private String flagEsterilizado;
    private String flagVacinado;
    private String flagVermifugado;

    public String getFlagEsterilizado() {
        return flagEsterilizado;
    }

    public void setFlagEsterilizado(String flagEsterilizado) {
        this.flagEsterilizado = flagEsterilizado;
    }

    public String getFlagIdade() {
        return flagIdade;
    }

    public void setFlagIdade(String flagIdade) {
        this.flagIdade = flagIdade;
    }

    public String getFlagPelagem() {
        return flagPelagem;
    }

    public void setFlagPelagem(String flagPelagem) {
        this.flagPelagem = flagPelagem;
    }

    public String getFlagPorte() {
        return flagPorte;
    }

    public void setFlagPorte(String flagPorte) {
        this.flagPorte = flagPorte;
    }

    public String getFlagRaca() {
        return flagRaca;
    }

    public void setFlagRaca(String flagRaca) {
        this.flagRaca = flagRaca;
    }

    public String getFlagSexo() {
        return flagSexo;
    }

    public void setFlagSexo(String flagSexo) {
        this.flagSexo = flagSexo;
    }

    public String getFlagTipoAnimal() {
        return flagTipoAnimal;
    }

    public void setFlagTipoAnimal(String flagTipoAnimal) {
        this.flagTipoAnimal = flagTipoAnimal;
    }

    public String getFlagVacinado() {
        return flagVacinado;
    }

    public void setFlagVacinado(String flagVacinado) {
        this.flagVacinado = flagVacinado;
    }

    public String getFlagVermifugado() {
        return flagVermifugado;
    }

    public void setFlagVermifugado(String flagVermifugado) {
        this.flagVermifugado = flagVermifugado;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    
    public Long save() throws SQLException {
        Connection conn = DBUtil.getConnection();
        PreparedStatement ps = null;
        Long ret = 0L;
        try {
            String sql = "insert into caracteristica (flag_tipo_animal, flag_sexo, flag_idade, flag_porte, flag_pelagem, flag_raca, flag_esterilizado, flag_vacinado, flag_vermifugado) values(?,?,?,?,?,?,?,?,?)";
            ps = conn.prepareStatement(sql);
            ps.setString(1, this.flagTipoAnimal);
            ps.setString(2, this.flagSexo);
            ps.setString(3, this.flagIdade);
            ps.setString(4, this.flagPorte);
            ps.setString(5, this.flagPelagem);
            ps.setString(6, this.flagRaca);
            ps.setString(7, this.flagEsterilizado);
            ps.setString(8, this.flagVacinado);
            ps.setString(9, this.flagVermifugado);
            ps.executeUpdate();
            ret = DBUtil.lastInsertedId("caracteristica");
        } catch (SQLException ex) {
            Logger.getLogger(Caracteristica.class.getName()).log(Level.SEVERE, null, ex);
            throw ex;
        } finally {
            ps.close();
            conn.close();
        }
        return ret;
    }
    
    // Metodo utilizado pela HOME, BUSCA e ADOTADOS para pegar as caracteristicas dos animais cadastrados
    public Caracteristica caracteristicas(Long id) throws SQLException {
        Caracteristica caract = new Caracteristica();
        Connection conn = DBUtil.getConnection();
        Statement s = null;
        ResultSet rs = null;

        try {
            s = conn.createStatement();
            String sql = "select id, flag_tipo_animal, flag_sexo, flag_idade, flag_porte, flag_pelagem, flag_raca, flag_esterilizado, flag_vacinado, flag_vermifugado from caracteristica where id = " + id;
            rs = s.executeQuery(sql); 
            while (rs.next()) {
                caract.setId(rs.getLong(1));
                caract.setFlagTipoAnimal(rs.getString(2));
                caract.setFlagSexo(rs.getString(3));
                caract.setFlagIdade(rs.getString(4));
                caract.setFlagPorte(rs.getString(5));
                caract.setFlagPelagem(rs.getString(6));
                caract.setFlagRaca(rs.getString(7));
                caract.setFlagEsterilizado(rs.getString(8));
                caract.setFlagVacinado(rs.getString(9));
                caract.setFlagVermifugado(rs.getString(10));
            }

        } catch (SQLException ex) {
            Logger.getLogger(Caracteristica.class.getName()).log(Level.SEVERE, null, ex);
            throw ex;
        } finally {
            s.close();
            rs.close();
            conn.close();
        }
        return caract;
    }
}
